<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   主题：求助：矩阵操作（熟悉MATLAB和R的请进）  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript">
   MathJax.Hub.Config({elements: ["bbpress-forums"]});
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://cos.name/cn/topic/6962/",
                  host: "http://cos.name",
                  prePath: "http://cos.name",
                  scheme: "http",
                  pathBase: "http://cos.name/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466450496: Accept with keywords: (title(0.333333333333):主题,矩阵,论坛, topn(0.233333333333):定义,差不多,帖子,会员,行数,标量,用户名,答案,速度,对列,所需,函数,论坛,矩阵,问题,普通,优化,计算所,版主,功能,瓶颈,代码,主题,程序,测试数据,向量,比较清楚,列数,时间,讨论区).-->
 </head>
 <body class="topic bbpress single single-topic postid-6962 single-author sidebar" onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    主题：求助：矩阵操作（熟悉MATLAB和R的请进）
   </h1>
  </div>
  <div class="container" id="xmain">
   <div class="hfeed site" id="page">
    <header class="site-header" id="masthead" role="banner">
     <div id="cos-logo">
      <a href="http://cos.name/cn">
       <img src="http://cos.name/cn/wp-content/themes/COS-forest/images/headers/cos-logo.png"/>
      </a>
     </div>
     <div class="navbar" id="navbar">
      <nav class="navigation main-navigation" id="site-navigation" role="navigation">
       <h3 class="menu-toggle">
        菜单
       </h3>
       <div class="menu-%e8%8f%9c%e5%8d%951-container">
        <ul class="nav-menu" id="menu-%e8%8f%9c%e5%8d%951">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-407772" id="menu-item-407772">
          <a href="http://cos.name/cn/">
           论坛首页
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407773" id="menu-item-407773">
          <a href="http://cos.name/cn/forums/">
           讨论区
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407774" id="menu-item-407774">
          <a href="http://cos.name/cn/wp-login.php?action=register">
           注册
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407819" id="menu-item-407819">
          <a href="http://cos.name/">
           主站
          </a>
         </li>
        </ul>
       </div>
      </nav>
      <!-- #site-navigation -->
     </div>
     <!-- #navbar -->
    </header>
    <!-- #masthead -->
    <div class="site-main" id="main">
     <div class="content-area" id="primary">
      <div class="site-content" id="content" role="main">
       <article class="post-6962 topic type-topic status-publish hentry" id="post-6962">
        <header class="entry-header">
         <h1 class="entry-title">
          求助：矩阵操作（熟悉MATLAB和R的请进）
         </h1>
        </header>
        <!-- .entry-header -->
        <div class="entry-content">
         <div id="bbpress-forums">
          <div class="bbp-breadcrumb">
           <p>
            <a class="bbp-breadcrumb-home" href="http://cos.name/cn/">
             COS论坛 | 统计之都
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-root" href="http://cos.name/cn/forums/">
             讨论区
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-forum" href="http://cos.name/cn/forum/software/">
             软件应用
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-forum" href="http://cos.name/cn/forum/software/r-language/">
             S-Plus &amp; R语言
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <span class="bbp-breadcrumb-current">
             求助：矩阵操作（熟悉MATLAB和R的请进）
            </span>
           </p>
          </div>
          <div class="bbp-template-notice info">
           <p class="bbp-topic-description">
            该主题包含 16 条回复，4个帖子，最后由
            <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
             <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=14&amp;d=monsterid&amp;r=g"/>
            </a>
            <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
             Rtist
            </a>
            在
            <a href="http://cos.name/cn/topic/6962/page/2/#post-228776" title="回复：求助：矩阵操作（熟悉MATLAB和R的请进）">
             8 年, 11 月 之前
            </a>
            更新。
           </p>
          </div>
          <div class="bbp-pagination">
           <div class="bbp-pagination-count">
            查看 15 个帖子 - 1 到 15（总计 17 个）
           </div>
           <div class="bbp-pagination-links">
            <span class="page-numbers current">
             1
            </span>
            <a class="page-numbers" href="http://cos.name/cn/topic/6962/page/2/">
             2
            </a>
            <a class="next page-numbers" href="http://cos.name/cn/topic/6962/page/2/">
             →
            </a>
           </div>
          </div>
          <ul class="forums bbp-replies" id="topic-6962-replies">
           <li class="bbp-header">
            <div class="bbp-reply-author">
             作者
            </div>
            <!-- .bbp-reply-author -->
            <div class="bbp-reply-content">
             帖子
            </div>
            <!-- .bbp-reply-content -->
           </li>
           <!-- .bbp-header -->
           <li class="bbp-body">
            <div class="bbp-reply-header" id="post-6962">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月4日 上午3:25
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-6962">
               1 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-6962 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-1 user-id-22237 topic-author post-6962 topic type-topic status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               <img src="http://sdn.geekzu.org/avatar/91d0969396acc79e1a7863b562afc976?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               cowboy313
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               假如要求一个矩阵A(m*n)的列平均后，得到一个行向量x(1*n)，然后根据向量x组成一个与原矩阵大小相同的新矩阵，新矩阵的的每一行都是向量x。在MATLAB中的代码如下：
              </p>
              <p>
               B = repmat(mean(A),n,1);
              </p>
              <p>
               在R中我使用的代码如下：
               <br/>
               B = matrix(rep(apply(A,2,mean),times=m),nrow=m,ncol=n,byrow=T);
              </p>
              <p>
               但是后者的计算时间度要大很多，当矩阵很大时，两者区别特别明显，请问还有没有更简单的算法？
              </p>
              <p>
               顺便问下，在MATLAB中测试一代码的运行时间可以如下：
               <br/>
               tic, your_code; toc;      %可以显示运行的时间；
               <br/>
               在R中如何实现这个功能。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228557">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月4日 下午12:24
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228557">
               2 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228557 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-2 user-id-336 post-228557 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               <img src="http://sdn.geekzu.org/avatar/6ca0529d22d1bf25a1e5cee3af3456f9?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               刘思喆
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <pre class="highlight ">&gt; rm(list = ls())
&gt; m &lt;- 1000
&gt; n &lt;- 3000
&gt; 
&gt; A &lt;- matrix(1:(m*n),m,n,byrow = T)
&gt; 
&gt; 
&gt; system.time(B1 &lt;- matrix(rep(apply(A,2,mean),times=m),nrow=m,ncol=n,byrow=T))
[1] 0.69 0.06 0.80   NA   NA
&gt; system.time(B2 &lt;- matrix(apply(A,2,mean),nrow=m, ncol = n ,byrow=T))
[1] 0.37 0.00 0.38   NA   NA</pre>
              <p>
               这样好一点。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228563">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月4日 下午5:25
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228563">
               3 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228563 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-3 user-id-230 post-228563 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               matrix(colMeans(A),m,n,by=T)
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228607">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 上午2:35
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228607">
               4 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228607 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-4 user-id-336 post-228607 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               <img src="http://sdn.geekzu.org/avatar/6ca0529d22d1bf25a1e5cee3af3456f9?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               刘思喆
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               直接进行矩阵操作也可以，不过速度和apply差不多
               <br/>
               y &lt;- matrix(1,1,m)
               <br/>
               B3 &lt;- t(y)%*%(y%*%A)/m
               <br/>
               R 进行矩阵运算和matlab比，差得远了
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228609">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 上午3:19
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228609">
               5 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228609 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-5 user-id-3419 post-228609 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/3419/" rel="nofollow" title="查看alexru的档案">
               <img src="http://sdn.geekzu.org/avatar/5dd2ce3b2c9c5bc14b247de79266ff87?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/3419/" rel="nofollow" title="查看alexru的档案">
               alexru
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <blockquote class="d4pbbc-quote">
               <p>
                [b]引用第3楼[i]bjt[/i]于[i]2007-07-06 09:35[/i]发表的“”[/b]:
                <br/>
                直接进行矩阵操作也可以，不过速度和apply差不多
                <br/>
                y &lt;- matrix(1,1,m)
                <br/>
                B3 &lt;- t(y)%*%(y%*%A)/m
                <br/>
                R 进行矩阵运算和matlab比，差得远了
               </p>
              </blockquote>
              <p>
               毕竟matlab是专搞矩阵的商业软件
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228624">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 上午7:09
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228624">
               6 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228624 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-6 user-id-230 post-228624 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <blockquote class="d4pbbc-quote">
               <p>
                [b]引用第3楼[i]bjt[/i]于[i]2007-07-05 20:35[/i]发表的“”[/b]:
                <br/>
                直接进行矩阵操作也可以，不过速度和apply差不多
                <br/>
                y &lt;- matrix(1,1,m)
                <br/>
                B3 &lt;- t(y)%*%(y%*%A)/m
                <br/>
                R 进行矩阵运算和matlab比，差得远了
               </p>
              </blockquote>
              <p>
               http://cos.name/bbs/read.php?tid=410&amp;keyword=
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228632">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 上午9:36
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228632">
               7 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228632 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-7 user-id-22237 topic-author post-228632 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               <img src="http://sdn.geekzu.org/avatar/91d0969396acc79e1a7863b562afc976?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               cowboy313
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               R在矩阵运算的功能确实不如MATLAB。我将在MATLAB中编写的程序转到R，发现运行时间多了50倍左右。刚才找到了运行时间瓶颈所在，就是R中的对列的操作函数apply(matrix_name,2,opration)在当行数很小而列数很大时，运行时间比MATLAB下同样的代码多得多。  我查看了R fro beginner，好象没有其它函数，可以提供快速对列求操作的功能。
              </p>
              <p>
               另两个问题：
               <br/>
               1.  R中的apply函数，对行操作运算如：apply(matrix_name,1,cumsum)计算所返回的矩阵是正确答案的转置矩阵。
              </p>
              <p>
               2.  请问如何测试R中一段代码的运行时间，这样可以很方便的找出费时最多的代码，方便我们优化程序。   MATLAB中可用这样的代码： tic, your_code; toc;
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228635">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 下午12:32
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228635">
               8 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228635 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-8 user-id-230 post-228635 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <blockquote class="d4pbbc-quote">
               <p>
                [b]引用第6楼[i]cowboy313[/i]于[i]2007-07-06 03:36[/i]发表的“”[/b]:
                <br/>
                R在矩阵运算的功能确实不如MATLAB。我将在MATLAB中编写的程序转到R，发现运行时间多了50倍左右。刚才找到了运行时间瓶颈所在，就是R中的对列的操作函数apply(matrix_name,2,opration)在当行数很小而列数很大时，运行时间比MATLAB下同样的代码多得多。  我查看了R fro beginner，好象没有其它函数，可以提供快速对列求操作的功能。
               </p>
               <p>
                另两个问题：
                <br/>
                1.  R中的apply函数，对行操作运算如：apply(matrix_name,1,cumsum)计算所返回的矩阵是正确答案的转置矩阵。
               </p>
               <p>
                …….
               </p>
              </blockquote>
              <p>
               通常问题都不是R慢，而是直接从matlab翻译过来的程序没有针对R优化。
               <br/>
               apply给的是不是正确答案，取决于你怎么定义“正确”——R已经把它自己定义写得很清楚了，你不看就怪不得别人了。
               <br/>
               怎么看运行时间楼上的早就已经回答了；另外可用Rprof检查。
              </p>
              <p>
               楼上的测评已经写得比较清楚了，
               <strong class="d4pbbc-bold">
                对于常见矩阵操作来说，R都比matlab快
               </strong>
               ；但是R有很少量一部分操作不如matlab快。
               <br/>
               如果你的R做任何矩阵运算都比matlab慢，一种可能是你在用两种不同的blas，所以没有比较意义。
               <br/>
               另外内存也是问题，如果数据过大，需要使用虚拟内存的时候，R会显著变慢。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228638">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 下午2:04
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228638">
               9 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228638 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-9 user-id-230 post-228638 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <blockquote class="d4pbbc-quote">
               <p>
                [b]引用第3楼[i]bjt[/i]于[i]2007-07-05 20:35[/i]发表的“”[/b]:
                <br/>
                直接进行矩阵操作也可以，不过速度和apply差不多
                <br/>
                y &lt;- matrix(1,1,m)
                <br/>
                B3 &lt;- t(y)%*%(y%*%A)/m
                <br/>
                R 进行矩阵运算和matlab比，差得远了
               </p>
              </blockquote>
              <p>
               注意下面最后一个方法，速度居然有这么大的差别。
              </p>
              <pre class="highlight ">&gt; rm(list=ls(all=T));gc()
         used (Mb) gc trigger (Mb) max used (Mb)
Ncells 233845  6.3     407500 10.9   350000  9.4
Vcells 103160  0.8     786432  6.0   395990  3.1
&gt; m=3000;n=1000;
&gt; A=matrix(sqrt(1:(m*n)),m,n)
&gt; B1=matrix(colMeans(A),m,n,by=T)
&gt; B2=matrix(apply(A,2,mean),m,n,byrow=T)
&gt; B3=matrix(crossprod(rep(1/m,m),A),m,n,by=T)
&gt; B4=(one&lt;-rep(1,m))%x%crossprod(one/m,A)
&gt; B5=(one&lt;-rep(1,m))%x%(t(one/m)%*%A)
&gt; B6=t(y&lt;-matrix(1,1,m))%*%(y%*%A)/m
&gt; B7=(one&lt;-rep(1,m))%*%crossprod(one/m,A)
&gt; 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   234958   6.3     467875  12.5   350000   9.4
Vcells 24109265 184.0   28343745 216.3 24119253 184.1
&gt; system.time(for(i in 1:100)B1=matrix(colMeans(A),m,n,by=T))
   user  system elapsed 
  14.31    1.37   15.95 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   350000   9.4
Vcells 24109335 184.0   40533852 309.3 39121529 298.5
&gt; system.time(for(i in 1:100)B2=matrix(apply(A,2,mean),m,n,byrow=T))
   user  system elapsed 
  34.02    2.84   37.70 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   428849  11.5
Vcells 24109335 184.0   40533852 309.3 40533316 309.3
&gt; system.time(for(i in 1:100)B3=matrix(crossprod(rep(1/m,m),A),m,n,by=T))
   user  system elapsed 
  11.09    1.09   12.29 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   428849  11.5
Vcells 24109335 184.0   40533852 309.3 40533316 309.3
&gt; system.time(for(i in 1:100)B4=(one&lt;-rep(1,m))%x%crossprod(one/m,A))
   user  system elapsed 
  11.04    2.90   14.15 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   428849  11.5
Vcells 24109335 184.0   44852571 342.2 42180722 321.9
&gt; system.time(for(i in 1:100)B5=(one&lt;-rep(1,m))%x%(t(one/m)%*%A))
   user  system elapsed 
  13.82    2.95   17.00 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   428849  11.5
Vcells 24109335 184.0   44852571 342.2 42205899 322.1
&gt; system.time(for(i in 1:100)B6=t(y&lt;-matrix(1,1,m))%*%(y%*%A)/m)
   user  system elapsed 
  10.98    2.84   14.04 
&gt; gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   235255   6.3     467875  12.5   428849  11.5
Vcells 24109335 184.0   44852571 342.2 42205899 322.1
&gt; system.time(for(i in 1:100)B7=(one&lt;-rep(1,m))%*%crossprod(one/m,A))
   user  system elapsed 
   4.91    1.54    6.57 
</pre>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228641">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 下午2:57
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228641">
               10 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228641 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-10 user-id-22237 topic-author post-228641 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               <img src="http://sdn.geekzu.org/avatar/91d0969396acc79e1a7863b562afc976?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               cowboy313
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               上述第一个问题原本不是作出质疑apply()函数的正确性，本意是想指出该函数如此定义出乎人的意料，其实在各种语言中都有些情况，需要我们特别注意。如R中的：操作符与MATLAB中：操作符的优先级差别就太大了，刚用时会经常忘记。
              </p>
              <p>
               对于计算时间问题没有注意到前面的回答，不好意思。
              </p>
              <p>
               你说的那个网站我也看了一下，那里进行的三种情况下的十五项测试没有一种是与我所说的情况相关的。且该测试是四年前的，参考意义已不能作为基准。本人相信该测试的可靠性，也相信目前最新版的MATLAB和R的矩阵计算功能各有千秋。
              </p>
              <p>
               可能对于我所求的功能中R表现不及MATLAB，现再次重复瓶颈代码：行数(m)小而列数(n)大时，对矩阵求的列求累加,仍然得到(m*n)大小的矩阵。
              </p>
              <p>
               测试环境：同一机器上Windows版本下的MATLAB7.1与R2.50，测试数据长度(2^15=32768).
               <br/>
               功能：求当m=10时，n = floor(2^15/m)，将测试数据整合成(m*n)的矩阵，求该矩阵的列求累加。
               <br/>
               变量：seq_data(长度为32768的序列), m = 10, n = floor(2^15/m).
              </p>
              <p>
               R2.5.0中所需的时间：
               <br/>
               system.time(Z1 &lt;- apply(matrix(seq_data[1:(m*n)],m,n),2,cumsum))
               <br/>
               用户 系统 流逝
               <br/>
               0.12 0.00 0.13
              </p>
              <p>
               MATLAB中所需的时间：
               <br/>
               tic,Z1 = cumsum(reshape(seq_data(1:m*n),m,n));toc;
               <br/>
               Elapsed time is 0.002220 seconds.
              </p>
              <p>
               虽然两者所需的时间都很少，但前者是后者的50以上，若在一个大的循环中，差别就太明显了。我描述的功能应该比较清楚了，或者有人能找到R中完成相应功能的快速代码。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228643">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 下午3:16
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228643">
               11 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228643 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-11 user-id-22237 topic-author post-228643 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               <img src="http://sdn.geekzu.org/avatar/91d0969396acc79e1a7863b562afc976?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/22237/" rel="nofollow" title="查看cowboy313的档案">
               cowboy313
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               刚看到八楼的回复，今晚没有时间测试，感谢大家的回复。
               <br/>
               呵呵，这个问题对我帮助很大，对R的矩阵操作又多了解了不少。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228647">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月6日 下午7:30
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228647">
               12 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228647 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-12 user-id-230 post-228647 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               比较cumsum意义不大，R的cumsum是针对vector的，Matlab的cumsum是针对矩阵的，相当于拿解释代码的循环与编译代码的循环在比。
              </p>
              <p>
               不过R的代码还是可以优化很多的：
              </p>
              <pre class="highlight ">version
m=10;n = floor(2^15/m)
A=matrix(sqrt(1:(m*n)),m,n)
B=matrix(1,m,m)
B[lower.tri(B)]=0
col.cumsum=crossprod(B,A)

gc();
system.time(for(i in 1:1000){    col.cumsum=apply(A,2,cumsum)})

gc();
system.time(for(i in 1:1000){    B=matrix(1,m,m)
                B[upper.tri(B)]=0
                col.cumsum1=B%*%A})
gc();
system.time(for(i in 1:1000){    B=matrix(1,m,m)
                B[.Internal(row(B))&lt;.Internal(col(B))]=0
                col.cumsum2=B%*%A})

gc();
system.time(for(i in 1:1000){    B=matrix(1,m,m)
                B[.Internal(row(B))&gt;.Internal(col(B))]=0
                col.cumsum3=crossprod(B,A)})

gc();
system.time(for(i in 1:1000){    B=sapply(0:(m-1),function(i)rep(0:1,c(i,m-i)))
                col.cumsum4=B%*%A})

gc();
system.time(for(i in 1:1000){    B=numeric(m*m);vec=rep(1,m)
                for(j in 1:m-1){B[(j*m+1):(j*m+m)]=vec;vec[j]=0}
                dim(B)=c(m,m)
                col.cumsum5=B%*%A})

## if used in a loop, B matrix doesn't need to be generated everytime.
gc();
system.time({
    B=matrix(1,m,m)
    B[.Internal(row(B))&gt;.Internal(col(B))]=0
    for(i in 1:1000)col.cumsum3=crossprod(B,A)
})
all.equal(col.cumsum,col.cumsum3)
</pre>
              <p>
               结果：注意apply cumsum与crossprod的差距。
              </p>
              <pre class="highlight ">&gt; version
               _                                          
platform       i386-pc-mingw32                            
arch           i386                                       
os             mingw32                                    
system         i386, mingw32                              
status         Patched                                    
major          2                                          
minor          5.1                                        
year           2007                                       
month          06                                         
day            29                                         
svn rev        42094                                      
language       R                                          
version.string R version 2.5.1 Patched (2007-06-29 r42094)
&gt; m=10;n = floor(2^15/m)
&gt; A=matrix(sqrt(1:(m*n)),m,n)
&gt; B=matrix(1,m,m)
&gt; B[lower.tri(B)]=0
&gt; col.cumsum=crossprod(B,A)
&gt; 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240311   6.5     467875  12.5   467875  12.5
Vcells 21216824 161.9   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){col.cumsum=apply(A,2,cumsum)})
   user  system elapsed 
  42.39    0.07   49.60 
&gt; 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240321   6.5     467875  12.5   467875  12.5
Vcells 21216844 161.9   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){B=matrix(1,m,m)
+ B[upper.tri(B)]=0
+ col.cumsum1=B%*%A})
   user  system elapsed 
   0.89    0.00    1.04 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240328   6.5     467875  12.5   467875  12.5
Vcells 21249607 162.2   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){B=matrix(1,m,m)
+ B[.Internal(row(B))&lt;.Internal(col(B))]=0
+ col.cumsum2=B%*%A})
   user  system elapsed 
   0.88    0.00    1.04 
&gt; 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240335   6.5     467875  12.5   467875  12.5
Vcells 21282370 162.4   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){B=matrix(1,m,m)
+ B[.Internal(row(B))&gt;.Internal(col(B))]=0
+ col.cumsum3=crossprod(B,A)})
   user  system elapsed 
   0.59    0.00    0.83 
&gt; 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240342   6.5     467875  12.5   467875  12.5
Vcells 21315133 162.7   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){B=sapply(0:(m-1),function(i)rep(0:1,c(i,m-i)))
+ col.cumsum4=B%*%A})
   user  system elapsed 
   1.13    0.00    1.33 
&gt; 
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240349   6.5     467875  12.5   467875  12.5
Vcells 21347846 162.9   52174655 398.1 52162618 398.0
&gt; system.time(for(i in 1:1000){B=numeric(m*m);vec=rep(1,m)
+ for(j in 1:m-1){B[(j*m+1):(j*m+m)]=vec;vec[j]=0}
+ dim(B)=c(m,m)
+ col.cumsum5=B%*%A})
   user  system elapsed 
   1.08    0.00    1.15 
&gt; 
&gt; ## if used in a loop, B matrix doesn't need to be generated everytime.
&gt; gc();
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   240356   6.5     467875  12.5   467875  12.5
Vcells 21380659 163.2   52174655 398.1 52162618 398.0
&gt; system.time({
+ B=matrix(1,m,m)
+ B[.Internal(row(B))&gt;.Internal(col(B))]=0
+ for(i in 1:1000)col.cumsum3=crossprod(B,A)
+ })
   user  system elapsed 
   0.55    0.00    0.59 
&gt; all.equal(col.cumsum,col.cumsum3)
[1] TRUE
</pre>
              <p>
               MATLAB结果：
              </p>
              <pre class="highlight ">&gt;&gt; version

ans =

7.4.0.287 (R2007a)

&gt;&gt; m=10;n=3276;A=reshape(sqrt(1:(m*n)),m,n);
&gt;&gt; tic;for i=1:1000;cs=cumsum(A);end;toc
Elapsed time is 0.433993 seconds.
</pre>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228717">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月9日 上午7:16
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228717">
               13 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228717 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-13 user-id-336 post-228717 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               <img src="http://sdn.geekzu.org/avatar/6ca0529d22d1bf25a1e5cee3af3456f9?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               刘思喆
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <blockquote class="d4pbbc-quote">
               <p>
                [b]引用第8楼[i]rtist[/i]于[i]2007-07-06 21:04[/i]发表的“”[/b]:
               </p>
               <p>
                注意下面最后一个方法，速度居然有这么大的差别。
               </p>
               <p>
                …….
               </p>
              </blockquote>
              <pre class="highlight ">&gt; rm(list = ls())
&gt; m &lt;- 1000
&gt; n &lt;- 500
&gt; 
&gt; A &lt;- matrix(1:(m*n),m,n,byrow = T)
&gt; y &lt;- matrix(1,1,m)
&gt; 
&gt; 
&gt; system.time(for(i in 1:100)B4 &lt;- crossprod(y,(y%*%A))/m)
[1] 3.51 1.03 4.55   NA   NA
&gt; 
&gt; system.time(for(i in 1:100)B5 &lt;- crossprod(y,((y/m)%*%A)))
[1] 2.40 0.61 3.01   NA   NA
&gt; 
&gt; system.time(for(i in 1:100)B6=(one&lt;-rep(1,m))%*%crossprod(one,A)/m)
[1] 4.12 1.04 5.20   NA   NA
&gt; 
&gt; system.time(for(i in 1:100)B7=(one&lt;-rep(1,m))%*%crossprod(one/m,A))
[1] 1.73 0.68 2.42   NA   NA</pre>
              <p>
               这个 /m 的确要在里面；并且
               <br/>
               crossprod is faster than the call t(x) %*% y   (R help)
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228748">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月9日 下午7:32
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228748">
               14 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228748 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-14 user-id-230 post-228748 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               <img src="http://sdn.geekzu.org/avatar/3cf69793b8d5be8febd22526bae3bb10?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/230/" rel="nofollow" title="查看Rtist的档案">
               Rtist
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               /m在里面只需要length(one)次标量除法，在外面则需要把矩阵的每个元素都作一次标量除法。
              </p>
              <p>
               crossprod快于t()%*%不假。
               <br/>
               更有意思的问题是，crossprod(t(A),B)快不快于A%*%B。
               <br/>
               如若也是快的，那么%*%就没有存在的必要了。
              </p>
              <p>
               谁有兴趣没准可以测试一下（我估计矩阵的大小有可能改变结果）。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-228751">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2007年7月10日 上午2:59
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/6962/#post-228751">
               15 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-228751 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-6962 bbp-reply-position-15 user-id-336 post-228751 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               <img src="http://sdn.geekzu.org/avatar/6ca0529d22d1bf25a1e5cee3af3456f9?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               刘思喆
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               rtist 起的好早！！
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
           </li>
           <!-- .bbp-body -->
           <li class="bbp-footer">
            <div class="bbp-reply-author">
             作者
            </div>
            <div class="bbp-reply-content">
             帖子
            </div>
            <!-- .bbp-reply-content -->
           </li>
           <!-- .bbp-footer -->
          </ul>
          <!-- #topic-6962-replies -->
          <div class="bbp-pagination">
           <div class="bbp-pagination-count">
            查看 15 个帖子 - 1 到 15（总计 17 个）
           </div>
           <div class="bbp-pagination-links">
            <span class="page-numbers current">
             1
            </span>
            <a class="page-numbers" href="http://cos.name/cn/topic/6962/page/2/">
             2
            </a>
            <a class="next page-numbers" href="http://cos.name/cn/topic/6962/page/2/">
             →
            </a>
           </div>
          </div>
          <div class="bbp-no-reply" id="no-reply-6962">
           <div class="bbp-template-notice">
            <p>
             您必须先登录才能回复该主题。
            </p>
           </div>
          </div>
         </div>
        </div>
        <!-- .entry-content -->
        <footer class="entry-meta">
        </footer>
        <!-- .entry-meta -->
       </article>
       <!-- #post -->
       <div class="comments-area" id="comments">
       </div>
       <!-- #comments -->
      </div>
      <!-- #content -->
     </div>
     <!-- #primary -->
     <div class="sidebar-container" id="tertiary" role="complementary">
      <div class="sidebar-inner">
       <div class="widget-area">
        <aside class="widget bbp_widget_login" id="bbp_login_widget-2">
         <h3 class="widget-title">
          登录
         </h3>
         <form action="http://cos.name/cn/wp-login.php" class="bbp-login-form" method="post">
          <fieldset>
           <legend>
            登录
           </legend>
           <div class="bbp-username">
            <label for="user_login">
             用户名:
            </label>
           </div>
           <div class="bbp-password">
            <label for="user_pass">
             密码:
            </label>
           </div>
           <div class="bbp-remember-me">
            <label for="rememberme">
             记住用户名
            </label>
           </div>
           <div class="bbp-submit-wrapper">
            <button class="button submit user-submit" id="user-submit" name="user-submit" tabindex="104" type="submit">
             登录
            </button>
           </div>
           <div class="bbp-login-links">
            <a class="bbp-register-link" href="http://cos.name/cn/wp-login.php?action=register" title="注册">
             注册
            </a>
            <a class="bbp-lostpass-link" href="http://cos.name/cn/wp-login.php?action=lostpassword" title="忘记密码">
             忘记密码
            </a>
           </div>
          </fieldset>
         </form>
        </aside>
        <aside class="widget widget_text" id="text-7">
         <h3 class="widget-title">
          搜索
         </h3>
         <div class="textwidget">
          <form action="http://www.google.com/search" id="bbp-search-form" method="get" onsubmit="Gsitesearch(this)" role="search">
           <div>
           </div>
          </form>
          <form id="bbp-search-form-baidu" onsubmit="g(this)" role="search">
           <div>
           </div>
          </form>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-2">
         <h3 class="widget-title">
          新鲜事
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <a href="http://cos.name/cn/topics/">
             最新帖子
            </a>
           </li>
           <li>
            <a href="http://cos.name/cn/view/popular/">
             最热门主题
            </a>
           </li>
           <li>
            <a href="http://cos.name/cn/view/no-replies/">
             消灭零回复
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-3">
         <h3 class="widget-title">
          RSS订阅
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <img src="http://cos.name/wp-includes/images/rss.png"/>
            <a href="http://cos.name/cn/topics/feed/">
             所有主题
            </a>
           </li>
           <li>
            <img src="http://cos.name/wp-includes/images/rss.png"/>
            <a href="http://cos.name/cn/forums/feed/">
             所有帖子
            </a>
           </li>
          </ul>
         </div>
        </aside>
       </div>
       <!-- .widget-area -->
      </div>
      <!-- .sidebar-inner -->
     </div>
     <!-- #tertiary -->
    </div>
    <!-- #main -->
    <footer class="site-footer" id="colophon" role="contentinfo">
     <div class="site-info">
      版权所有 © 2014 统计之都 | 由
      <a href="http://wordpress.org/">
       WordPress
      </a>
      构建 | 主题修改自
      <a href="http://wordpress.org/themes/twentythirteen">
       Twenty Thirteen
      </a>
     </div>
     <!-- .site-info -->
    </footer>
    <!-- #colophon -->
   </div>
   <!-- #page -->
  </div>
 </body>
</html>